home *** CD-ROM | disk | FTP | other *** search
-
- ----------------------------------------------------------------
-
- AMARQUEE v1.46
-
- (Released 12/7/97)
-
- ----------------------------------------------------------------
-
-
- The Problem:
-
- You have a great idea for a killer multi-player Internet game
- or multi-user net app, but it's a total pain in the @)#$* to
- write all the TCP connection and data synchronization code
- you'll need to get it going. So you put your idea on the
- back-burner and go play "Lemmings" instead. And thus the
- Amiga is deprived of a fun Internet app. D-oh! :(
-
- The Solution: (well, okay, it's *a* solution, anyway)
-
- AMarquee is a system that handles all of the icky information
- distribution details for you, allowing you to concentrate on
- coding your application, rather than on which data goes into
- which socket when. AMarquee consists of a shared library and
- a TCP daemon, which work together to get your data where it
- needs to be. Your program simply calls amarquee.library
- functions to broadcast the data, and waits on a provided
- MsgPort for data from other hosts. Easy!
-
-
- Features of amarquee.library (the shared library/API):
-
- - Programs written to use amarqeue.library will work transparently
- with Inet225, AmiTCP, Miami, or any stack that is "AmiTCP compatible".
- - Simple API requires no knowledge of socket programming to use.
- - Each AMarquee connection you make automatically and transparently
- starts a separate execution thread, so your app will never
- be forced to wait while data is sent or received.
- - An arbitrary number of connections may be active at once.
- - Allows you to "subscribe" to data that interests you, so that
- when the data on the server is changed you will be automatically
- notified. You never need to poll for anything!
- - An easy mechanism for sending messages to one or many other
- AMarquee clients that are logged into the same server.
- - Standard Amiga wildcarding is supported in all applicable functions.
- This allows you to easily and succinctly refer to one host or data
- item, or many, as appropriate.
- - #includes for both C and PCQ Pascal are included.
- - ARexx accessible. That is, ARexx scripts can use amarquee.library
- for communications using the same API that compiled programs do.
- - Example programs in C, Pascal, and ARexx are included.
- - Operation is almost totally asynchronous for efficiency, but
- several easy synchronization methods are available if you need them.
- - Can also be used for direct client-to-client connections and
- for making inetd-launched or manually-launched daemon programs.
- - Automatically detects when the remote computer has crashed or
- been shut down, even on idle connections.
-
- Features of AMarqueed (the AmiTCP server):
-
- - Works with Inet225, AmiTCP, Miami, or any other stack that is
- "AmiTCP compatible".
- - Fully multithreaded design, with one server process per connection.
- - Re-entrant code, to minimize memory usage.
- - Data is stored in a filesystem-like tree structure for simplicity,
- flexibility and efficiency. Each client gets its own "home directory"
- that it may write to or read from, and each client may also
- read from the "home directories" of other clients.
- - Efficient design minimizes CPU usage, net bandwidth, and execution time.
- - Limits may be put on memory usage, number of connections, and/or
- which clients or apps may connect. Only serve the hosts and apps
- you want to serve!
- - Supports data streaming to one or many clients at once.
- - Data streaming and synchronization features let you be sure your
- data was read by all interested hosts before you update it again.
- - Automatically detects and eliminates "dead" connections (e.g.
- if the client computer was shut down without quitting politely)
-
- WHAT'S NEW IN VERSION 1.46:
-
- - ARexx support! amarquee.library is now usable by ARexx scripts.
- - Added the QGetAndSubscribeOp() function to amarquee.library.
- - Added amarqueedebug.rexx, amarqueehost.rexx, sysmessage.rexx,
- and killclients.rexx to the sample programs directory.
- * QNewHostSession() was broken under Inet225. Fixed it. (Thanks
- to Raj for reporting this!)
- * Fixed a minor bug that would cause an unwarranted update message
- to be sent to any client that had received a QMessageOp message
- from a client whose root node it was monitoring via QSubscribeOp.
- * Fixed a bug in AMarqueed that prevented QRenameOp events from
- being broadcast to other clients correctly--the deletion of
- the old name would be sent, but not the creation of the new one.
-